<?php
class GotoController extends Sosweb_Controller_Action
{
	function init()
	{
		parent::init();
		$this->logger->info('Inicjalizacja strony z przekierowaniami profitmania.pl przez uzytkownika z IP: '.$_SERVER['REMOTE_ADDR']);
		
		$this->_helper->layout()->getView()->headTitle('ProfitMania.pl - Zarabiaj na zakupach - '.Sosweb_Const_DescriptionConst::$TITLE_1, 'SET');
		$this->_helper->layout()->getView()->getHelper('HeadMeta')->appendName('description', Sosweb_Const_DescriptionConst::$DESC_1);		
	}
	
	function indexAction()
	{
		$this->logger->warn('Niewłaściwe wywołanie adresu strony. Nastąpi przekierowania do strony głównej serwisu.');
		
		return $this->_forward('index', 'index');		
	}
	
	function titleAction()
	{
		$request = clone $this->getRequest();

		//identyfikator kuponu
		$id = $request->getParam('id');	
		
		if (isset($id))
		{
			try
	       	{
	       		$coupons_view = new CouponsView();
	    		$select = $coupons_view->select();
	    		$select->where('id = ?', $id);
	    	
	       		$this->logger->info('Fetching coupons data need to redirect. '.$select->assemble());
				$rows = $coupons_view->fetchAll($select);
				
				if(count($rows)== 0)
				{
					$this->logger->warn('Nie znaleziono danych o kuponie o identyfikatorze '.$id.'.');
					
					return $this->_forward('coupons', 'index');
				}
	       		elseif(count($rows) > 1)
				{
					$this->logger->warn('Dla podanego identyfikatora znaleziono więcej niż jeden kupon. Błąd aplikacji.');
					
					return $this->_forward('coupons', 'index');
				}				
				else
				{
					//zarejestrowanie klikniecia w bazie danych
					$view = array('coupon_id'=>$id, 'view_time'=>date());
					$views_title = new ViewsTitle();
					$newRowId = $views_title->insert($view);			

					$this->logger->info('Zarejestrowano kliknięcie [newId='.$newRowId.'] w tytuł kuponu o identyfikatorze '.$id);					

					//przejscie na strone sklepu (tytulu)
					return $this->_redirect($rows->current()->t_link);	
				}				
	       	}
			catch(Zend_Exception $ex)
			{
				$this->logger->error($ex->getMessage());
				$this->view->message = 'Wystąpił błąd aplikacji podczas pobierania danych o ilości kliknięć w kupony.';
				
				return $this->_forward('coupons', 'index');
			}    	
		}
		else
		{
			$this->logger->warn('Nastąpiło wywołanie funkcji przekierowania bez podania identyfikatora kuponu.');
			$this->view->message = 'Nie podano identyfikatora kupony dla którego zażądano przekierowania.';
			
			return $this->_forward('coupons', 'index');
		}
	}
	
	function codeAction()
	{
		$request = clone $this->getRequest();

		//identyfikator kuponu
		$id = $request->getParam('id');	
		
		if (isset($id))
		{
			$coupons_view = new CouponsView();
	    	$select = $coupons_view->select();
	    	$select->where('id = ?', $id);
	    	
			try
	       	{
	       		$this->logger->info('Fetching coupons data need to redirect. '.$select->assemble());
				$rows = $coupons_view->fetchAll($select);
				
				if(count($rows)== 0)
				{
					$this->logger->warn('Nie znaleziono danych o kuponie o identyfikatorze '.$id.'.');
					
					return $this->_forward('coupons', 'index');
				}
	       		elseif(count($rows) > 1)
				{
					$this->logger->warn('Dla podanego identyfikatora znaleziono więcej niż jeden kupon. Błąd aplikacji.');
					
					return $this->_forward('coupons', 'index');
				}				
				else
				{
					//zarejestrowanie klikniecia w bazie danych
					$view = array('coupon_id'=>$id, 'view_time'=>date());
					$views_code = new ViewsCode();
					$newRowId = $views_code->insert($view);			

					$this->logger->info('Zarejestrowano kliknięcie [newId='.$newRowId.'] w kod kuponu o identyfikatorze '.$id);					

					//przejscie na strone sklepu (tytulu)
					return $this->_redirect($rows->current()->c_link);	
				}				
	       	}
			catch(Zend_Exception $ex)
			{
				$this->logger->error($ex->getMessage());
				$this->view->message = 'Wystąpił błąd aplikacji podczas pobierania danych o ilości kliknięć w kupony.';
				
				return $this->_forward('coupons', 'index');
			}    	
		}
		else
		{
			$this->logger->warn('Nastąpiło wywołanie funkcji przekierowania bez podania identyfikatora kuponu.');
			$this->view->message = 'Nie podano identyfikatora kupony dla którego zażądano przekierowania.';
			
			return $this->_forward('coupons', 'index');
		}
	}
}